using System;
using System.Collections.Generic;
using System.Reflection;
using System.Runtime.InteropServices;

using ILRuntime.CLR.TypeSystem;
using ILRuntime.CLR.Method;
using ILRuntime.Runtime.Enviorment;
using ILRuntime.Runtime.Intepreter;
using ILRuntime.Runtime.Stack;
using ILRuntime.Reflection;
using ILRuntime.CLR.Utils;
using System.Linq;

namespace ILRuntime.Runtime.Generated
{
    unsafe class huqiang_Core_HGUI_HCanvas_Binding
    {
        public static void Register(ILRuntime.Runtime.Enviorment.AppDomain app)
        {
            BindingFlags flag = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
            MethodBase method;
            FieldInfo field;
            Type[] args;
            Type type = typeof(huqiang.Core.HGUI.HCanvas);
            args = new Type[]{typeof(huqiang.Core.HGUI.HGUIRender)};
            method = type.GetMethod("RegCanvas", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, RegCanvas_0);
            args = new Type[]{typeof(huqiang.Core.HGUI.HGUIRender)};
            method = type.GetMethod("ReleaseCanvas", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, ReleaseCanvas_1);
            args = new Type[]{};
            method = type.GetMethod("Dispose", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Dispose_2);
            args = new Type[]{};
            method = type.GetMethod("get_TypeName", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, get_TypeName_3);
            args = new Type[]{};
            method = type.GetMethod("UpdateMesh", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, UpdateMesh_4);
            args = new Type[]{typeof(huqiang.Core.HGUI.UIElement), typeof(System.Int32), typeof(System.Int32), typeof(UnityEngine.Transform)};
            method = type.GetMethod("Collection2", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Collection2_5);
            args = new Type[]{typeof(huqiang.Core.HGUI.HGUIRender)};
            method = type.GetMethod("UpdateMesh2", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, UpdateMesh2_6);
            args = new Type[]{typeof(huqiang.Core.HGUI.HGUIRender)};
            method = type.GetMethod("ApplyMeshRenderer", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, ApplyMeshRenderer_7);
            args = new Type[]{typeof(UnityEngine.Touch[])};
            method = type.GetMethod("DispatchUserAction", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, DispatchUserAction_8);
            args = new Type[]{};
            method = type.GetMethod("DispatchUserAction", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, DispatchUserAction_9);
            args = new Type[]{};
            method = type.GetMethod("ClearAllAction", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, ClearAllAction_10);
            args = new Type[]{typeof(System.Boolean)};
            method = type.GetMethod("OnApplicationFocus", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, OnApplicationFocus_11);
            args = new Type[]{};
            method = type.GetMethod("Batch", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Batch_12);
            args = new Type[]{typeof(UnityEngine.Vector2)};
            method = type.GetMethod("ScreenToCanvasPos", flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, ScreenToCanvasPos_13);

            field = type.GetField("AllCanvas", flag);
            app.RegisterCLRFieldGetter(field, get_AllCanvas_0);
            app.RegisterCLRFieldSetter(field, set_AllCanvas_0);
            app.RegisterCLRFieldBinding(field, CopyToStack_AllCanvas_0, AssignFromStack_AllCanvas_0);
            field = type.GetField("render", flag);
            app.RegisterCLRFieldGetter(field, get_render_1);
            app.RegisterCLRFieldSetter(field, set_render_1);
            app.RegisterCLRFieldBinding(field, CopyToStack_render_1, AssignFromStack_render_1);
            field = type.GetField("WorldPosition", flag);
            app.RegisterCLRFieldGetter(field, get_WorldPosition_2);
            app.RegisterCLRFieldSetter(field, set_WorldPosition_2);
            app.RegisterCLRFieldBinding(field, CopyToStack_WorldPosition_2, AssignFromStack_WorldPosition_2);
            field = type.GetField("CurrentCanvas", flag);
            app.RegisterCLRFieldGetter(field, get_CurrentCanvas_3);
            app.RegisterCLRFieldSetter(field, set_CurrentCanvas_3);
            app.RegisterCLRFieldBinding(field, CopyToStack_CurrentCanvas_3, AssignFromStack_CurrentCanvas_3);
            field = type.GetField("inputs", flag);
            app.RegisterCLRFieldGetter(field, get_inputs_4);
            app.RegisterCLRFieldSetter(field, set_inputs_4);
            app.RegisterCLRFieldBinding(field, CopyToStack_inputs_4, AssignFromStack_inputs_4);
            field = type.GetField("PauseEvent", flag);
            app.RegisterCLRFieldGetter(field, get_PauseEvent_5);
            app.RegisterCLRFieldSetter(field, set_PauseEvent_5);
            app.RegisterCLRFieldBinding(field, CopyToStack_PauseEvent_5, AssignFromStack_PauseEvent_5);
            field = type.GetField("Pause", flag);
            app.RegisterCLRFieldGetter(field, get_Pause_6);
            app.RegisterCLRFieldSetter(field, set_Pause_6);
            app.RegisterCLRFieldBinding(field, CopyToStack_Pause_6, AssignFromStack_Pause_6);
            field = type.GetField("renderQueue", flag);
            app.RegisterCLRFieldGetter(field, get_renderQueue_7);
            app.RegisterCLRFieldSetter(field, set_renderQueue_7);
            app.RegisterCLRFieldBinding(field, CopyToStack_renderQueue_7, AssignFromStack_renderQueue_7);


            app.RegisterCLRCreateDefaultInstance(type, () => new huqiang.Core.HGUI.HCanvas());
            app.RegisterCLRCreateArrayInstance(type, s => new huqiang.Core.HGUI.HCanvas[s]);

            args = new Type[]{};
            method = type.GetConstructor(flag, null, args, null);
            app.RegisterCLRMethodRedirection(method, Ctor_0);

        }


        static StackObject* RegCanvas_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HGUIRender @render = (huqiang.Core.HGUI.HGUIRender)typeof(huqiang.Core.HGUI.HGUIRender).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);


            huqiang.Core.HGUI.HCanvas.RegCanvas(@render);

            return __ret;
        }

        static StackObject* ReleaseCanvas_1(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HGUIRender @render = (huqiang.Core.HGUI.HGUIRender)typeof(huqiang.Core.HGUI.HGUIRender).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);


            huqiang.Core.HGUI.HCanvas.ReleaseCanvas(@render);

            return __ret;
        }

        static StackObject* Dispose_2(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.Dispose();

            return __ret;
        }

        static StackObject* get_TypeName_3(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            var result_of_this_method = instance_of_this_method.TypeName;

            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static StackObject* UpdateMesh_4(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.UpdateMesh();

            return __ret;
        }

        static StackObject* Collection2_5(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 5);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.Transform @trans = (UnityEngine.Transform)typeof(UnityEngine.Transform).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            System.Int32 @index = ptr_of_this_method->Value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 3);
            System.Int32 @parent = ptr_of_this_method->Value;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 4);
            huqiang.Core.HGUI.UIElement @script = (huqiang.Core.HGUI.UIElement)typeof(huqiang.Core.HGUI.UIElement).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 5);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.Collection2(@script, @parent, @index, @trans);

            return __ret;
        }

        static StackObject* UpdateMesh2_6(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HGUIRender @context = (huqiang.Core.HGUI.HGUIRender)typeof(huqiang.Core.HGUI.HGUIRender).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.UpdateMesh2(@context);

            return __ret;
        }

        static StackObject* ApplyMeshRenderer_7(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HGUIRender @render = (huqiang.Core.HGUI.HGUIRender)typeof(huqiang.Core.HGUI.HGUIRender).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.ApplyMeshRenderer(@render);

            return __ret;
        }

        static StackObject* DispatchUserAction_8(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.Touch[] @touches = (UnityEngine.Touch[])typeof(UnityEngine.Touch[]).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.DispatchUserAction(@touches);

            return __ret;
        }

        static StackObject* DispatchUserAction_9(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.DispatchUserAction();

            return __ret;
        }

        static StackObject* ClearAllAction_10(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.ClearAllAction();

            return __ret;
        }

        static StackObject* OnApplicationFocus_11(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            System.Boolean @focus = ptr_of_this_method->Value == 1;

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.OnApplicationFocus(@focus);

            return __ret;
        }

        static StackObject* Batch_12(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 1);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            instance_of_this_method.Batch();

            return __ret;
        }

        static StackObject* ScreenToCanvasPos_13(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* ptr_of_this_method;
            StackObject* __ret = ILIntepreter.Minus(__esp, 2);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 1);
            UnityEngine.Vector2 @mPos = (UnityEngine.Vector2)typeof(UnityEngine.Vector2).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
            __intp.Free(ptr_of_this_method);

            ptr_of_this_method = ILIntepreter.Minus(__esp, 2);
            huqiang.Core.HGUI.HCanvas instance_of_this_method = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            __intp.Free(ptr_of_this_method);

            var result_of_this_method = instance_of_this_method.ScreenToCanvasPos(@mPos);

            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }


        static object get_AllCanvas_0(ref object o)
        {
            return huqiang.Core.HGUI.HCanvas.AllCanvas;
        }

        static StackObject* CopyToStack_AllCanvas_0(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = huqiang.Core.HGUI.HCanvas.AllCanvas;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_AllCanvas_0(ref object o, object v)
        {
            huqiang.Core.HGUI.HCanvas.AllCanvas = (System.Collections.Generic.List<huqiang.Core.HGUI.HCanvas>)v;
        }

        static StackObject* AssignFromStack_AllCanvas_0(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Collections.Generic.List<huqiang.Core.HGUI.HCanvas> @AllCanvas = (System.Collections.Generic.List<huqiang.Core.HGUI.HCanvas>)typeof(System.Collections.Generic.List<huqiang.Core.HGUI.HCanvas>).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            huqiang.Core.HGUI.HCanvas.AllCanvas = @AllCanvas;
            return ptr_of_this_method;
        }

        static object get_render_1(ref object o)
        {
            return ((huqiang.Core.HGUI.HCanvas)o).render;
        }

        static StackObject* CopyToStack_render_1(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Core.HGUI.HCanvas)o).render;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_render_1(ref object o, object v)
        {
            ((huqiang.Core.HGUI.HCanvas)o).render = (huqiang.Core.HGUI.HGUIRender)v;
        }

        static StackObject* AssignFromStack_render_1(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Core.HGUI.HGUIRender @render = (huqiang.Core.HGUI.HGUIRender)typeof(huqiang.Core.HGUI.HGUIRender).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Core.HGUI.HCanvas)o).render = @render;
            return ptr_of_this_method;
        }

        static object get_WorldPosition_2(ref object o)
        {
            return ((huqiang.Core.HGUI.HCanvas)o).WorldPosition;
        }

        static StackObject* CopyToStack_WorldPosition_2(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Core.HGUI.HCanvas)o).WorldPosition;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_WorldPosition_2(ref object o, object v)
        {
            ((huqiang.Core.HGUI.HCanvas)o).WorldPosition = (UnityEngine.Vector3)v;
        }

        static StackObject* AssignFromStack_WorldPosition_2(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            UnityEngine.Vector3 @WorldPosition = (UnityEngine.Vector3)typeof(UnityEngine.Vector3).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)16);
            ((huqiang.Core.HGUI.HCanvas)o).WorldPosition = @WorldPosition;
            return ptr_of_this_method;
        }

        static object get_CurrentCanvas_3(ref object o)
        {
            return huqiang.Core.HGUI.HCanvas.CurrentCanvas;
        }

        static StackObject* CopyToStack_CurrentCanvas_3(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = huqiang.Core.HGUI.HCanvas.CurrentCanvas;
            object obj_result_of_this_method = result_of_this_method;
            if(obj_result_of_this_method is CrossBindingAdaptorType)
            {    
                return ILIntepreter.PushObject(__ret, __mStack, ((CrossBindingAdaptorType)obj_result_of_this_method).ILInstance);
            }
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_CurrentCanvas_3(ref object o, object v)
        {
            huqiang.Core.HGUI.HCanvas.CurrentCanvas = (huqiang.Core.HGUI.HCanvas)v;
        }

        static StackObject* AssignFromStack_CurrentCanvas_3(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.Core.HGUI.HCanvas @CurrentCanvas = (huqiang.Core.HGUI.HCanvas)typeof(huqiang.Core.HGUI.HCanvas).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            huqiang.Core.HGUI.HCanvas.CurrentCanvas = @CurrentCanvas;
            return ptr_of_this_method;
        }

        static object get_inputs_4(ref object o)
        {
            return ((huqiang.Core.HGUI.HCanvas)o).inputs;
        }

        static StackObject* CopyToStack_inputs_4(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Core.HGUI.HCanvas)o).inputs;
            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }

        static void set_inputs_4(ref object o, object v)
        {
            ((huqiang.Core.HGUI.HCanvas)o).inputs = (huqiang.UIEvent.UserAction[])v;
        }

        static StackObject* AssignFromStack_inputs_4(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            huqiang.UIEvent.UserAction[] @inputs = (huqiang.UIEvent.UserAction[])typeof(huqiang.UIEvent.UserAction[]).CheckCLRTypes(StackObject.ToObject(ptr_of_this_method, __domain, __mStack), (CLR.Utils.Extensions.TypeFlags)0);
            ((huqiang.Core.HGUI.HCanvas)o).inputs = @inputs;
            return ptr_of_this_method;
        }

        static object get_PauseEvent_5(ref object o)
        {
            return ((huqiang.Core.HGUI.HCanvas)o).PauseEvent;
        }

        static StackObject* CopyToStack_PauseEvent_5(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Core.HGUI.HCanvas)o).PauseEvent;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method ? 1 : 0;
            return __ret + 1;
        }

        static void set_PauseEvent_5(ref object o, object v)
        {
            ((huqiang.Core.HGUI.HCanvas)o).PauseEvent = (System.Boolean)v;
        }

        static StackObject* AssignFromStack_PauseEvent_5(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Boolean @PauseEvent = ptr_of_this_method->Value == 1;
            ((huqiang.Core.HGUI.HCanvas)o).PauseEvent = @PauseEvent;
            return ptr_of_this_method;
        }

        static object get_Pause_6(ref object o)
        {
            return ((huqiang.Core.HGUI.HCanvas)o).Pause;
        }

        static StackObject* CopyToStack_Pause_6(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Core.HGUI.HCanvas)o).Pause;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method ? 1 : 0;
            return __ret + 1;
        }

        static void set_Pause_6(ref object o, object v)
        {
            ((huqiang.Core.HGUI.HCanvas)o).Pause = (System.Boolean)v;
        }

        static StackObject* AssignFromStack_Pause_6(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Boolean @Pause = ptr_of_this_method->Value == 1;
            ((huqiang.Core.HGUI.HCanvas)o).Pause = @Pause;
            return ptr_of_this_method;
        }

        static object get_renderQueue_7(ref object o)
        {
            return ((huqiang.Core.HGUI.HCanvas)o).renderQueue;
        }

        static StackObject* CopyToStack_renderQueue_7(ref object o, ILIntepreter __intp, StackObject* __ret, IList<object> __mStack)
        {
            var result_of_this_method = ((huqiang.Core.HGUI.HCanvas)o).renderQueue;
            __ret->ObjectType = ObjectTypes.Integer;
            __ret->Value = result_of_this_method;
            return __ret + 1;
        }

        static void set_renderQueue_7(ref object o, object v)
        {
            ((huqiang.Core.HGUI.HCanvas)o).renderQueue = (System.Int32)v;
        }

        static StackObject* AssignFromStack_renderQueue_7(ref object o, ILIntepreter __intp, StackObject* ptr_of_this_method, IList<object> __mStack)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            System.Int32 @renderQueue = ptr_of_this_method->Value;
            ((huqiang.Core.HGUI.HCanvas)o).renderQueue = @renderQueue;
            return ptr_of_this_method;
        }



        static StackObject* Ctor_0(ILIntepreter __intp, StackObject* __esp, IList<object> __mStack, CLRMethod __method, bool isNewObj)
        {
            ILRuntime.Runtime.Enviorment.AppDomain __domain = __intp.AppDomain;
            StackObject* __ret = ILIntepreter.Minus(__esp, 0);

            var result_of_this_method = new huqiang.Core.HGUI.HCanvas();

            return ILIntepreter.PushObject(__ret, __mStack, result_of_this_method);
        }


    }
}
